1. Field of the Invention
The present invention relates to an image forming apparatus having a document editing function, a computer-readable storage medium storing a computer program for the image forming apparatus, and a control method for controlling the image forming apparatus.
2. Description of the Related Art
Multifunction devices are one example of information equipment that is used for business purposes and called Office Automation (OA) equipment. Such multifunction devices have recently been known as Multi-Function Peripherals (MFPs) providing functions such as image inputting, fax communication, electronic mail communication, document storage in addition to a basic function as an image forming apparatus such as copying and printing. Such multifunction devices are connected to networks of business offices, and operate in response to input operation through an operational panel provided in the multifunction device or in response to access from computers connected to the networks.
Many of such multifunction devices have a security function for authenticating users. According to a typical authentication method, a multifunction device verifies a user ID and password entered by a user for using the device against user IDs and passwords registered in advance. When the verification is successful, then the user is authenticated. The authenticated user is allowed to provide a variety of jobs such as a print job to the multifunction device.
During the execution of a print job, the multifunction device automatically suspends the execution of the print job when it encounters such a trouble as paper shortage or paper jams, or an interruption of another job. If power is kept turned on during the suspension, the print job is maintained. When the trouble is cleared or the interruption of another job completes, the suspended print job is resumed, and remaining unprinted pages will be printed.
With regard to the suspension of a print job, JP-2008-158194A proposes a technique to hold a print job even if power is shut off. According to the technique, a job in execution and the job information indicating the progress of the job in execution are stored in a non-volatile memory. When power is restarted after shut-off, the job information is read from the non-volatile memory and loaded into a volatile memory (RAM) used for control, and the suspended job is resumed.
JP-2006-35533A also proposes another technique in which a “Suspend/End” key and a “Reprint” key are provided on an operation panel of a printer. When the “Suspend/End” key is pressed during printing, the printer stops paper feeding operation and stores data that is mapped in a page buffer into a non-volatile memory. When the “Reprint” key is pressed, the printer reads the data from the non-volatile memory and prints the data.
The multifunction device is provided with a box used for storing and temporarily storing documents. The box is a non-volatile memory area provided in a large-capacity storage device such as a hard disk drive (HDD). The box may be provided for each user or each user group, or provided in such a way that it can be accessed by all users. Documents that are stored in the box are printed, transmitted by fax, transmitted to another device via a network, edited, or deleted according to individual jobs.
JP-2008-219802A proposes a technique intended to share information among a plurality of users with respect to editing and deletion of documents stored in a box. According to this technique, when a user performs operation to edit or delete a document stored in a box shared by a plurality of users, the apparatus determines whether all the plurality of users have accessed the document before it is edited. The unedited document is stored until all the plurality of users access the document. After all the plurality of users have accessed the document, an edited document is made available for access in place of the unedited document. When a user performs deletion of the document, the document is deleted when all the plurality of users have accessed the document.
In printing a document that is stored in a box and shared by a plurality of users, there are some cases where a print job is canceled while it is still executed. This is particularly a possible case for printing a document having a large number of pages. In such a case, it may be possible that a user has no choice but to determine to cancel the printing while it is still executed and to perform job canceling operation. For example, the job is canceled in such a case when the user must leave the multifunction device unattended for such a reason as for attending a meeting or an urgent matter to attend before the completion of printing. In that case, the user can not collect all printed paper (printed matter) in a short period of time and cancels the job. The job may also be canceled in a case where the user is unable to continue the intended printing if paper runs out and no replenishing stock is available. The user can leave the multifunction device unattended without canceling the printing. However, such a decision leaves the printed sheets of paper unattended, which impairs the security of information. Alternatively, if the user suspends the printing and allows the multifunction device to hold the job, other print jobs can not be executed, causing troubles to other users.
Cancellation of the print job entails cancellation of print data bitmapped from a document and job management information indicating progress of a job execution such as completed pages. This means that a new print job should be provided to the multifunction device if the same document is to be printed.
When a print job is provided, a user specifies pages to be printed as required. When a document whose printing has been discontinued by cancellation is reprinted, the user who wishes to print only those pages that remain unprinted is required to check the printed pages to find unprinted pages in order to specify the pages to be printed. This requires the user to do a laborious work. It may be possible for the user to specify all pages to skip the laborious work. In that case, however, pages that have been already printed will be printed again, leading to a waste of paper unnecessarily.
In addition, during a period from when a user suspended printing of a document until the user prints the document again, some other users may perform file editing by partially altering the same document. This means that the data of pages that had been printed before suspending the printing may be changed. In this case, the user who suspended the printing, when he or she provides an instruction for printing again, can specify all pages to obtain an updated printed matter. However, if the user, without knowing that file editing has been performed, specifies the unprinted pages for printing, there may be inconsistency between the pages that were already printed and the pages to be printed depending on how the file editing has been performed.